#include<iostream>
using namespace std;
const int maxn=100;
int list[maxn],cnt,t=100;
float epsilon;
void print()
{
    for(int i=0;i<cnt;i++)
    cout<<list[i]<<" ";
    cout<<endl;
}
void merge_list_acc()
{
    int i=0,j=cnt,k=0;
    int temp[maxn];
    while(i<cnt&&j<2*cnt)
    {
        if(list[i]<list[j]) temp[k++]=list[i++];
        else if(list[i]>list[j]) temp[k++]=list[j++];
        else temp[k++]=list[i++],j++;
    }
    while(i<cnt) temp[k++]=list[i++];
    while(j<2*cnt) temp[k++]=list[j++];
    while(k>0&&temp[k-1]>t) k--;
    cnt=k;
    for(int i=0;i<cnt;i++)
    list[i]=temp[i];
}
void trim()
{
    int temp[maxn],cnt_t=1;
    temp[0]=list[0];
    int last=list[0];
    for(int i=1;i<cnt;i++)
    {
        if(list[i]>last*(1+epsilon))
        {
            temp[cnt_t++]=list[i];
            last=list[i];
        }
    }
    cnt=cnt_t;
    for(int i=0;i<cnt;i++)
    list[i]=temp[i];
}
void add_list(int x)
{
    for(int i=0;i<cnt;i++)
    list[i+cnt]=list[i]+x;
    merge_list_acc();
    trim();
    print();
}
int main()
{
    cnt=1;list[0]=0;
    int item,w;cin>>t>>epsilon>>item;
    for(int i=0;i<item;i++)
    {
        cin>>w;
        add_list(w);
    }
    print();
}